iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0

挑戰目標: MockNative Camp


想想現在應該有三年多JAVA經驗,現在公司的專案也是用JAVA 11開發,但最近在看JAVA文件時才發現原來從JAVA 8後新增的酷玩意我都沒用過呢...
像是Lambda、Stream等等的,真的是要常常去看一些更新文件學習新用法呢。
今天我們來做一個通用的response格式,http status code在現實工作中並沒辦法涵蓋所有情況,尤其是商業邏輯錯誤所要回傳的訊息不盡相同,所以我們需要自己handle response格式,並在裡面加上自己定義的code還有message,如果前端有自己做i18n的話,可以直接從code maping到語系的訊息。
我自己的習慣是會新增這些object
https://ithelp.ithome.com.tw/upload/images/20210930/20140358MtEzP8cFXR.png
CommonResponse.java

package com.mock.nativecamp.payload;

import com.mock.nativecamp.payload.sub.Info;
import com.mock.nativecamp.payload.sub.ResData;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor()
@NoArgsConstructor
public class CommonResponse {
    private Info info;
    private ResData data;

    public CommonResponse successRes() {
        CommonResponse commonResponse = new CommonResponse();
        Info info = new Info();
        info.setCode("00");
        info.setMessage("success");
        commonResponse.setInfo(info);
        return commonResponse;
    }

    public  CommonResponse errorRes(String msg, String code) {
        CommonResponse commonResponse = new CommonResponse();
        Info info = new Info();
        info.setCode(code);
        info.setMessage(msg);
        commonResponse.setInfo(info);
        return commonResponse;
    }
}

Info.java

package com.mock.nativecamp.payload.sub;

import lombok.Data;

@Data
public class Info {
    private String status;
    private String code;
    private String message;
}

ResData.java

package com.mock.nativecamp.payload.sub;

import lombok.Data;

@Data
public class ResData {
    private Object data;
}

明天我們再來實作到每一個API的response中,之後會做全局性的error handling。


上一篇
[Day 14]現在真的履歷導向比較好嗎(後端篇)
下一篇
[Day 16]新試劑服英戰士(後端篇)
系列文
關於我快30歲的後端工程師,想轉職成全端工程師,在前端世界中尋求機會的那件事(後端篇)18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言